home *** CD-ROM | disk | FTP | other *** search
- /************************************************************
-
- Modified from HyperXcmd.h in MPW 3.0 Interfaces
- Written by: Jeff E Mandel MD MS
- Department of Anesthesia
- Tulane University School of Medicine
- 1430 Tulane Ave
- New Orleans, LA 70112
-
- (504) 588 5903
- AS01MEF@VM.TCS.TULANE.EDU
- AS01MEF AT TCSVM (Bitnet)
- All rights reserved. This code may not be used for commercial distributed software
- without the prior authorization of the author. No warranty as to suitability of this
- software is made, and no liability for adverse effects is assumed by the author.
-
- THyperXCmd.h
- Class definition file for HyperCard XCMDs and XFCNs in C++.
-
-
- Portions Copyright Apple Computer, Inc. 1987-1988
- All rights reserved
-
- ************************************************************/
-
-
- #ifndef __TXcmdPtrDefs__
- #define __TXcmdPtrDefs__
-
- #include <Types.h>
- #include <ToolUtils.h>
- #include <Packages.h>
-
- typedef void (*MyProcPtr) ();
-
- #include <TString.h>
-
- /* result codes */
-
- #define xresSucc 0
- #define xresFail 1
- #define xresNotImp 2
-
- /* request codes */
- #define xreqSendCardMessage 1
- #define xreqEvalExpr 2
- #define xreqStringLength 3
- #define xreqStringMatch 4
- #define xreqSendHCMessage 5
- #define xreqZeroBytes 6
- #define xreqPasToZero 7
- #define xreqZeroToPas 8
- #define xreqStrToLong 9
- #define xreqStrToNum 10
- #define xreqStrToBool 11
- #define xreqStrToExt 12
- #define xreqLongToStr 13
- #define xreqNumToStr 14
- #define xreqNumToHex 15
- #define xreqBoolToStr 16
- #define xreqExtToStr 17
- #define xreqGetGlobal 18
- #define xreqSetGlobal 19
- #define xreqGetFieldByName 20
- #define xreqGetFieldByNum 21
- #define xreqGetFieldByID 22
- #define xreqSetFieldByName 23
- #define xreqSetFieldByNum 24
- #define xreqSetFieldByID 25
- #define xreqStringEqual 26
- #define xreqReturnToPas 27
- #define xreqScanToReturn 28
- #define xreqScanToZero 39 /* was suppose to be 29! Oops! */
-
- class TXCMDBlock {
- short paramCount;
- Handle params[16];
- Handle returnValue;
- Boolean passFlag;
- void (*entryPoint)(); /*to call back to HyperCard*/
- short request;
- short result;
- long inArgs[8];
- long outArgs[4];
- public:
- pascal long StringLength(StringPtr strPtr);
- pascal void SendCardMessage(StringPtr msg);
- pascal void SendHCMessage(StringPtr msg);
- pascal Handle GetGlobal(StringPtr globName);
- pascal void SetGlobal(StringPtr globName,Handle globValue);
- pascal Handle GetFieldByID(Boolean cardFieldFlag,short fieldID);
- pascal Handle GetFieldByName(Boolean cardFieldFlag,StringPtr fieldName);
- pascal Handle GetFieldByNum(Boolean cardFieldFlag,short fieldNum);
- pascal void SetFieldByID(Boolean cardFieldFlag,short fieldID,
- Handle fieldVal);
- pascal void SetFieldByName(Boolean cardFieldFlag,StringPtr fieldName,
- Handle fieldVal);
- pascal void SetFieldByNum(Boolean cardFieldFlag,short fieldNum,
- Handle fieldVal);
- pascal Handle EvalExpr(StringPtr expr);
- pascal Boolean StrToBool(char *str);
- pascal long StrToLong(char *str);
- pascal void LongToStr(long num,StringPtr mystr);
- pascal void ZeroToPas(char *zeroStr, StringPtr pasStr);
- pascal Handle PasToZero(StringPtr pasStr);
- /*
- Added functions by JEM
- */
-
- pascal void SendCardMessageC(CString msg);
- pascal Handle GetFieldByNameC(Boolean cardFieldFlag,CString fieldName);
- pascal void SetFieldByNameC(Boolean cardFieldFlag,CString fieldName,
- Handle fieldVal);
-
- inline Boolean checkArgNums (short expected)
- {return (paramCount==expected);};
- Boolean informArgNums(char *theXCMD, short expected);
-
- void SignalReturnStatus (StringPtr theMessage);
- void SignalReturnStatus (Handle theMessage);
- void SignalReturnStatus (Ptr theMessage);
- void SignalReturnStatus (CString theMessage);
- Ptr RecoverStringArg(short theNum);
- Boolean RecoverBooleanArg(short theNum);
- void CopyStringArg(short theNum, StringPtr theString);
- void CopyStringArg(short theNum, Ptr theString);
- void SignalFatalError(char *msg);
- void SignalFatalError(CString msg);
-
- CString CStringArg(short theNum);
- long RecoverLongArg(short theNum);
- long RecoverLongGlobal(StringPtr globName);
- void SetLongGlobal(StringPtr globName, long theVal);
- inline Handle RecoverHandleArg(short theNum)
- {return (Handle) params[theNum];};
- void SignalFileErr(OSErr theErr);
-
- };
-
- #endif
-